#define _CRT_SECURE_NO_WARNINGS 1
//#include<iostream>
//using namespace std;
//int isdog(int* bay, int n, int size)
//{
//    for (int i = 0; i < size; i++)
//    {
//        if (n == bay[i])
//            return i;
//    }
//    return -1;
//
//}
//bool patisnull(int* pat, int n, int size)
//{
//    for (int i = 0; i < size; i++)
//    {
//        if (pat[i] == n)
//            return true;
//    }
//    return false;
//}
//
//int main()
//{
//    int n;
//    cin >> n;
//    int* bay = (int*)malloc(sizeof(int)*2*n);
//    for (int i = 0; i < 2 * n; i++)
//    {
//        cin >> bay[i];
//    }
//
//    int k;
//    cin >> k;
//    int* pat = (int*)malloc(sizeof(int) * k);
//
//    
//    for (int i = 0; i < k; i++)
//    {
//        cin >> pat[i];
//    }
//    int max = 0;
//    int cnt = 0;
//    int* begin = (int*)malloc(sizeof(int)*10);
//    for (int i = 0; i < k; i++)
//    {
//        int falg2 = 0;
//        int falg1 = isdog(bay, pat[i], 2 * n);
//        if (falg1 % 2 == 0)
//        {
//            falg2 = falg1 + 1;
//        }
//        else
//        {
//            falg2 = falg1 - 1;
//        }
//        if (falg1 != -1 && patisnull(pat, bay[falg2], k))
//        {
//            int falg = 0;
//            int sum = 0;
//            int j = i + 1;
//            int* tmp = (int*)malloc(sizeof(int) * n);
//
//            while (j < k && pat[j] != bay[falg2])
//            {
//              
//                int c =isdog(bay, pat[j], 2 * n);
//                if (c != -1)
//                {
//                    if (c % 2 == 0)
//                        c++;
//                    else
//                        c--;
//                }
//                if (  c==-1 || !patisnull(pat, bay[c], k))
//                {
//                   
//                    tmp[sum] = pat[j];
//                    sum++;
//                }
//                j++;
//            }
//            if (sum > max)
//            {
//                for (int s = 0; s < sum; s++)
//                {
//                    begin[s] = tmp[s];
//                }
//                max = sum;
//            }
//
//        }
//
//    }
//    for (int i = 0; i < max - 1; i++)
//    {
//        for (int j = 0; j < max - 1 - i; j++)
//        {
//            if (begin[j] > begin[j + 1])
//            {
//                int c = begin[j];
//                begin[j] = begin[j + 1];
//                begin[j + 1] = c;
//            }
//        }
//    }
//    for (int i = 0; i < max; i++)
//    {
//        cout << begin[i] << ' ';
//    }
//
//
//    return 0;
//}
//#include<stdio.h>
//#include<string.h>
//#include<stdlib.h>
//
//int main()
//{
//    int n, k;
//    scnaf("%d %d", &n, &k);
//    getchar();
//    char** lag = (char**)malloc(sizeof(char*) * n);
//    for (int i = 0; i < n; i++)
//    {
//        char* tmp = (char*)malloc(101);
//        if (tmp == NULL)
//        {
//            perror("malloc");
//        }
//        gets(tmp);
//        lag[i] = tmp;
//    }
//    for (int i = 0; i < n; i++)
//    {
//        puts(lag[i]);
//    }
//    return 0;
//}
#include<iostream>
using namespace std;
void swap(int* a, int* b)
{
    int c = *a;
    *a = *b;
    *b = c;
}
int isdog(int* bay, int n, int size)
{
    for (int i = 0; i < size; i++)
    {
        if (n == bay[i])
            return i;
    }
    return -1;

}
int patisnull(int** pat, int n, int size)
{
    for (int i = 0; i < size; i++)
    {
        if (pat[i][0] == n)
            return i;
    }
    return -1;
}

int main()
{
    int n;
    cin >> n;
    int* bay = (int*)malloc(sizeof(int) * 2 * n);
    for (int i = 0; i < 2 * n; i++)
    {
        cin >> bay[i];
    }

    int k;
    cin >> k;
    int** pat = (int**)malloc(sizeof(int*) * k);


    for (int i = 0; i < k; i++)
    {
        int c;
        cin >> c;
        pat[i] = (int*)malloc(sizeof(int) * 2);
        pat[i][0] = c;
        pat[i][1] = 0;
    }
    int cnt = -1;
    for (int i = 0; i < k; i++)
    {
        int falg1 = isdog(bay, pat[i][0], 2 * n);
        int falg2 = -1;
        int s = 0;
        if (falg1 % 2)
        {
            s = falg1 - 1;
        }
        else
        {
            s = falg1 + 1;
        }
        if (falg1 != -1)
        {
            falg2 = patisnull(pat, bay[s], k);
        }
        if (falg1 != -1 && falg2 != -1&& 
            !pat[i][1]&&!pat[falg2][1])
        {
            pat[i][1] = pat[falg2][1] = cnt;
            cnt--;
        }
    }
    int** ret = (int**)malloc(sizeof(int*) * k);
    for (int i = 0; i < k; i++)
    {
        ret[i] = (int*)malloc(sizeof(int) * 2);
    }
    cnt = 0;
    for (int i = 0; i < k; i++)
    {
        int sum = 0;
       
        if (!pat[i][1])
        {
           
            for(int j = 0;j<i;j++)
            {
                int c = pat[j][1];
                if(c!=0)
                {

                    int r = k - 1;
                    int falg = 0;
                    while (r > i)
                    {
                        if (pat[r][1] == c)
                        {
                            falg = 1;
                            break;
                        }
                        r--;
                    }
                    if (falg)
                    {
                        sum++;
                    }
                    
                    
                }
            }
            if (i > 1 && pat[i - 1][1] == pat[i - 2][1])
            {
                sum++;
            }
            if (i < k - 3 && pat[i + 1][1] == pat[i + 2][1])
            {
                sum++;
            }
            if (sum )
            {
                ret[cnt][0] = pat[i][0];
                ret[cnt][1] = sum;
                cnt++;
            }
        }
    }

    for (int i = 0; i < cnt-1; i++)
    {
        for (int j = 0; j < cnt-i-1; j++)
        {
            if (ret[j][0] > ret[j + 1][0])
            {
                swap(&ret[j][0], &ret[j + 1][0]);
                swap(&ret[j][1], &ret[j + 1][1]);

            }
        }
        
    }
   
    for (int i = 0; i < cnt; i++)
    {
        
        cout << ret[i][0] << ' ' ;
    }

    return 0;
}